/**
 * Created by lesonchan on 2017/10/10.
 */

// 引入mockjs
import Mock from 'mockjs'
const d = new Date()
// 获取 mock.Random 对象
const Random = Mock.Random;
// todo:mockjs demo数据
/*const demoData = function() {
  let demos = [];
  for (let i = 0; i < 1; i++) {
    let newDemoObject = {
      // Basic
      bool: Random.boolean(), // Random.boolean( min?, max?, current? ) 随机生成布尔值
      naturals: Random.natural(), //  Random.natural( min?, max? ) 随机生成自然数
      ints: Random.integer(), //  Random.integer( min?, max? ) 随机生成整数
      floats: Random.float(), //  Random.float( min?, max?, dmin?, dmax?) 随机生成浮点数
      chars: Random.character(), //  Random.character( pool? ) 随机生成字符
      strings: Random.string(), //  Random.string( pool?, min?, max? ) 随机生成字符串
      ranges: Random.range(), //  Random.range(start?, stop, step?) 随机生成随机数

      // Date
      dates: Random.date(), //  Random.date( format? ) 随机生成日期
      times: Random.time(), //  Random.time( format? ) 随机生成时间
      datetimes: Random.datetime(), // Random.datetime( format? ) 随机生成日期时间
      nows: Random.now(), // Random.now( unit?, format? ) 随机生成当前时间

      // Image
      images: Random.image(), // Random.image( size?, background?, foreground?, format?, text? ) 随机生成图片
      dataImages: Random.dataImage('300x250', 'mock的图片'), // Random.dataImage( size, text ) 生成一段随机的 Base64 图片编码

      // Color
      colors: Random.color(), //  Random.color() 随机生成颜色值
      hexs: Random.hex(), // Random.hex() 随机生成颜色
      rgbs: Random.rgb(), // Random.rgb() 随机生成rgb颜色值  rgba(242, 121, 156)
      rgbas: Random.rgba(), // Random.rgba() 随机生成rgb颜色值  rgba(242, 121, 156, 0.45)
      hsls: Random.hsl(), // Random.hsl()

      // Text
      paragraphs: Random.paragraph(), //  Random.paragraph( min?, max? ) 随机生成英文长文章
      sentences: Random.sentence(), //  Random.sentence( min?, max? ) 随机生成英文短文章
      words: Random.word(), //  Random.word( min?, max? ) 随机生成英文单词
      titles: Random.title(), //  Random.title( min?, max? ) 随机生成英文标题
      cparagraphs: Random.cparagraph(), //  Random.cparagraph( min?, max? ) 随机生成中文长文章
      csentences: Random.csentence(), //  Random.sentence( min?, max? ) 随机生成中文短文章
      cwords: Random.cword(), //  Random.word( min?, max? ) 随机生成中文单词
      ctitles: Random.ctitle(), //  Random.title( min?, max? ) 随机生成中文标题

      // Name
      firsts: Random.first(), // Random.first() 随机生成英文第一个名
      lasts: Random.last(), //  Random.last() 随机生成英文最后一个名
      names: Random.name(), //  Random.name( middle? ) 随机生成英文名
      cfirsts: Random.cfirst(), // Random.first() 随机生成中文姓
      clasts: Random.clast(), //  Random.last() 随机生成中文名
      cnames: Random.cname(), //  Random.name( middle? ) 随机生成中文姓名

      // Web
      urls: Random.url(), //  Random.url() 随机生成URL
      domains: Random.domain(), //  Random.domain() 随机生成域名
      protocols: Random.protocol(), //  Random.protocol() 随机生成协议
      tlds: Random.tld(), //  Random.tld()
      emails: Random.email(), //  Random.email() 随机生成email
      ips: Random.ip(), //  Random.ip() 随机生成ip

      // Address
      regions: Random.region(), //  Random.region() 随机生成地区名
      provinces: Random.province(), //  Random.province() 随机生成省份
      citys: Random.city(), //  Random.city( prefix? ) 随机生成市名
      zips: Random.zip(), //  Random.zip() 随机生成邮编

      // Helper
      capitalizes: Random.capitalize('hello'), // Random.capitalize( word ) 首字母大写
      lowers: Random.lower('HELLO'), // Random.lower( str ) 转为小写
      uppers: Random.upper('hello'), // Random.upper( str ) 转为大写
      picks: Random.pick(['a', 'e', 'i', 'o', 'u']), // Random.pick(arr) 随机选择数组的某个值
      shuffles: Random.shuffle(['a', 'e', 'i', 'o', 'u']), //  Random.shuffle( arr ) 重新排序

      // Miscellaneous
      guids: Random.guid(), //  "b7B46c82-feE7-4bDc-CfF5-aeAaDD8d9A6C"
      ids: Random.id(), //  "430000197704117146"
      increments: Random.increment() //  Random.increment( step? )  1
    }
    demos.push(newDemoObject)
  }

  return {
    data: demos
  }
}
// Mock.mock( url, post/get , 返回的数据)；
Mock.mock('/api/demo/data', 'post', demoData);*/

// todo:身份验证 ***********************************************************************************

  // 身份验证
  const authenticateDate = function() {
    return {
      data: ''
    }
  }
  Mock.mock('/wxapi/Authenticate', 'get', authenticateDate);

  // 获取OPENID
  const getOpenidDate = function() {
    return  'oA7H4wDpGS-cHnUVlb3XmwAnSDaw' //'oA7H4wFoI_pNUiwV78YUYDFs_pjs' // oA7H4wDpGS-cHnUVlb3XmwAnSDaw
  }
  Mock.mock('/wxapi/UserInfo?code=&state=STATE', 'get', getOpenidDate);

// todo:注册登录 ***********************************************************************************

  // 绑定手机
  const regBindData = function() {
    return {
      pageinfo: null,
      recode: 0,
      retmsg: "手机号码有误，请填写正确的手机号码",
      data: '1'
    }
  }
  Mock.mock('/wxapi/register/bind', 'post', regBindData);

  // 绑定手机-获取短信验证码
  const codeData = function() {
    return {
      pageinfo: null,
      recode: "0",
      retmsg: "success",
      data: ''
    }
  }
  Mock.mock('/wxapi/Authenticate/sendcode?mobileno=15918714404', 'get', codeData);

  // 填写信息
  const regInfoData = function() {
    return {
      pageinfo: null,
      recode: "0",
      retmsg: "success",
      data: ''
    }
  }
  Mock.mock('/wxapi/register/saveBasicInfo', 'post', regInfoData);

  // 选择疾病--列表
  const regSickData = function() {
    let regSick = []
    for(let i=0; i<12; i++){
      let newRegSick = {
        pkid: 1,
        disease_name: Random.cname(),
        delete_flag: Random.boolean(),
        cust_id: Random.natural(0,100)
      }
      regSick.push(newRegSick)
    }
    return {
      pageinfo: null,
      recode: "0",
      retmsg: "success",
      data: regSick
    }
  }
  Mock.mock('/wxapi/MasterData/diseases', 'get', regSickData);

  // 选择疾病--确定
  const regSickSaveData = function() {

    return {
      pageinfo: null,
      recode: "0",
      retmsg: "success",
      data: ''
    }
  }
  Mock.mock('/wxapi/register/disease/1/1', 'put', regSickSaveData);

// todo:首页 ***********************************************************************************

  // 首页-图片上传
  const photoUploadData = function() {

    return {
      pageinfo: newPageinfo,
      retcode: 0,
      retmsg: '成功',
      data: ''
    }
  }
  Mock.mock('/wxapi/filecheck/upload', 'post', photoUploadData);

  // 首页-药品推荐
  const recommendData = function() {
    let recommendList = [];
    for (let i = 0; i < 4; i++) {
      let newRecommendList = {
        drug_id: 1,
        drug_name: Random.cname(),
        drug_pic: Random.dataImage('600x300', 'mock的图片')
      }
      recommendList.push(newRecommendList)
    }
    let newPageinfo = {
      pagesize: 1,
      pageindex: 2,
      total: 20
    }
    return {
      pageinfo: newPageinfo,
      retcode: 0,
      retmsg: '成功',
      data: recommendList
    }
  }
  Mock.mock('/wxapi/MasterData/drugRecommendation?pageindex=1&pagesize=4', 'get', recommendData);

  // 首页-药品推荐详情
  const recommendDetailData = function() {
    let imgArr = []
    for(let i=0; i<3; i++){
      imgArr.push(Random.dataImage('300x80', 'mock的图片'))
    }
    let newRecommendDetail = {
      drug_id: Random.natural(0,10), // 药品ID ,
      price: Random.natural(0,10), // 价格 ,
      drug_name: Random.ctitle(), // 药品名称 ,
      common_name: Random.cname(), // 通用名称 ,
      standard: '规格',// 规格 ,
      producer: Random.ctitle(),// 厂家 ,
      ischufang: Random.boolean(),// 是否处方药 ,
      dosage_form: Mock.mock('@pick(["片剂", "管剂"])'),// 剂型 ,
      storage: Mock.mock('@pick(["阴凉地方", "干燥的地方"])'),// 贮藏 ,
      auth_no: Mock.mock('@pick(["国药准字XX987733号", "国药准字YX9800973号"])'),// 批准文号 ,
      indication: Random.cparagraph(),// 适应症 ,
      chengfen: Random.cparagraph(),// 成份 ,
      character: Random.cparagraph(),//性状 ,
      advers_reaction: Random.cparagraph(),// 不良反应 ,
      attentions: Random.cparagraph(),// 注意事项 ,
      fortbits: Random.cparagraph(),// 禁忌 ,
      drug_interation: Random.cparagraph(),// 药物相互作用 ,
      drug_toxicology: Random.cparagraph(),// 药物毒理 ,
      files: imgArr // 图片集(最多三张)
    }
    return {
      data: newRecommendDetail
    }
  }
  Mock.mock('/wxapi/MasterData/drugDetail?drug_id=1', 'get', recommendDetailData);

  // 首页-我的消息
  const msgListData = function() {
    let msglist = [];
    for (let i = 0; i < 5; i++) {
      let newMsgList = {
        drid: 1, // 医生ID
        msg_id: 1, // 消息id ,
        createtime: Random.date(), // 创建时间 ,
        content: Random.csentence(5, 30), // 内容 ,
        name: Random.ctitle(), // 消息名称 ,
        head: Random.dataImage('300x300', 'mock的图片'), // 头像 ,
        unread: Random.boolean(), // 是否未读 ,
        msg_type: Mock.mock('@pick(["1", "2"])') // 消息类型 1 医生消息 2 系统消息
      }
      msglist.push(newMsgList)
    }
    return {
      pageinfo: {
        pageindex: 1,
        pagesize: 5,
        total: 0
      },
      data: {msgItems: msglist}
    }
  }
  Mock.mock('/wxapi/Msg/msgForIndex?load_type=reload&pageindex=1&pagesize=5', 'get', msgListData);
  Mock.mock('/wxapi/Msg/msgForIndex?load_type=next&pageindex=1&pagesize=5', 'get', msgListData);

  // 首页-我的消息-消息详情
  const msgInfoData = function() {
    let msgData = []
    let drugList = []
    for(let i=0; i<1; i++){
      let newDrugData = {
        mid: 1, // 患者id ,
        drug_class: Random.ctitle(), // 药品二级分类 ,
        drug_name: Random.ctitle(), // 商品名 ,
        common_name: Random.ctitle(), // 通用名 ,
        standard: 'XX规格', // 规格 ,
        qty: Random.natural(0,100), // 需求数量 ,
        is_buy: Random.boolean(), // 是否下单 主要针对用药建议消息
        status: Mock.mock('@pick(["0","1"])') // 状态 0 未确认 1 已确认
      }
      drugList.push(newDrugData)
    }
    for(let i=0; i<8; i++){
      let newMsgData = {
        msg_id: 1, // 留言或留言回复主键id ,
        msg_type: Mock.mock('@pick(["0","1","2","3","4"])'), // 消息类型 0 文本消息 1 图片消息 2 药品消息 3 提醒消息 4 语音消息 ,
        head: Random.dataImage('300x300'), // 头像 ,
        rcd_contents: Random.cparagraph(), // 内容(文本消息/图片链接/语音文件链接) ,
        createtime: Random.date(), // 留言或回复时间 ,
        createuser: 1, // 回复人id ,
        username: Random.cname(), // 回复人名称 ,
        user_type: Mock.mock('@pick(["0", "1"])'), // 回复人身份标识 0 患者 1 医生 ,
        druguse: drugList // 用药 ,
      }
      msgData.push(newMsgData)
    }
    let newMsgInfo = {
      date: Random.date(), // 留言日期
      items: msgData // 留言数据
    }
    return {
      data: newMsgInfo
    }
  }
  Mock.mock('/wxapi/PatientMessage/currentMsg?drid=1&msg_id=1', 'get', msgInfoData);

  // 首页-我的消息-消息检查
  const msgCheck = function() {
    return {
      data: Random.boolean()
    }
  }
  Mock.mock('/wxapi/PatientMessage/existsNoClose?drid=1', 'get', msgCheck);
  
  // 首页-我的消息-更多消息详情
  const msgMoreData = function() {
    let msgData = []
    let drugList = []
    for(let i=0; i<1; i++){
      let newDrugData = {
        mid: 1, // 患者id ,
        drug_class: Random.ctitle(), // 药品二级分类 ,
        drug_name: Random.ctitle(), // 商品名 ,
        common_name: Random.ctitle(), // 通用名 ,
        standard: 'XX规格', // 规格 ,
        qty: Random.natural(0,100), // 需求数量 ,
        is_buy: Random.boolean(), // 是否下单 主要针对用药建议消息
        status: Mock.mock('@pick(["0","1"])') // 状态 0 未确认 1 已确认
      }
      drugList.push(newDrugData)
    }
    for(let i=0; i<4; i++){
      let newMsgData = {
        msg_id: 1, // 留言或留言回复主键id ,
        msg_type: Mock.mock('@pick(["0","1","2","3","4"])'), // 消息类型 0 文本消息 1 图片消息 2 药品消息 3 提醒消息 4 语音消息 ,
        head: Random.dataImage('300x300'), // 头像 ,
        rcd_contents: Random.cparagraph(), // 内容(文本消息/图片链接/语音文件链接) ,
        createtime: Random.date(), // 留言或回复时间 ,
        createuser: 1, // 回复人id ,
        username: Random.cname(), // 回复人名称 ,
        user_type: Mock.mock('@pick(["0", "1"])'), // 回复人身份标识 0 患者 1 医生 ,
        druguse: drugList // 用药 ,
      }
      msgData.push(newMsgData)
    }
    let newMsgInfo = {
      date: Random.date(), // 留言日期
      items: msgData // 留言数据
    }
    return {
      data: newMsgInfo
    }
  }
  Mock.mock('/wxapi/PatientMessage/moreMsg?drid=1&date=2017-10-29', 'get', msgMoreData);

  // 首页-我的消息-咨询
  const msgWxData = function() {
    return {
      retcode: Mock.mock('@pick(["0","1"])'),
      retmsg: '跳转失败',
      data: null
    }
  }
  Mock.mock('/wxapi/PatientMessage/consultDr?drid=1&doctor_name=最后通牒123', 'get', msgWxData);

  // 首页-我的消息-是否关闭咨询
  const msgCloseData = function() {
    let newMsgClose = {
      is_close: Random.boolean(), // 当前留言是否结束 0 未结束 1 已结束 ,
      current_msg_id: 1 // 当前留言记录id
    }
    return {
      retcode: Mock.mock('@pick(["0","1"])'),
      retmsg: '跳转失败',
      data: newMsgClose
    }
  }
  Mock.mock('/wxapi/PatientMessage/GetMsgIsClose?drid=1', 'get', msgCloseData);

  // 首页-我的消息-图文收费咨询支付信息
  const buildMsgOrderData = function() {
    let newMsgPayinfo = {
      order_id: 1, // 订单id ,
      total_fee: Random.natural(0, 100), // 费用 ,
      mid: 1, // 患者id ,
      drid: 1 // 医生id  
    }
    return {
      data: newMsgPayinfo
    }
  }
  Mock.mock('/wxapi/PatientMessage/buildMsgOrder', 'post', buildMsgOrderData);

  // 首页-系统消息列表
  const sysListData = function() {
    let sysList = [];
    for (let i = 0; i < 5; i++) {
      let newSysList = {
        id: 1, // 公告id ,
        title: Random.ctitle(),// 标题 ,
        content: Random.csentence(5, 30),// 内容 ,
        createtime: Random.date(),// 时间 ,
        unread: Random.boolean() // 是否未读
      }
      sysList.push(newSysList)
    }
    let newPageinfo = {
      pagesize: 1,
      pageindex: 2,
      total: 20
    }
    return {
      pageinfo: newPageinfo,
      retcode: 0,
      retmsg: '成功',
      data: sysList
    }
  }
  Mock.mock('/wxapi/Msg/NoticeList?pageindex=1&pagesize=10', 'get', sysListData);

  // 首页-系统消息详情
  const sysDetailData = function() {
    let newSysDetail = {
      id: Random.natural(0, 100), // 公告id ,
      title: Random.ctitle(), // 标题 ,
      content: Random.cparagraph(), // 内容 ,
      createtime: Random.date(), // 时间 ,
      unread: Random.boolean() // 是否未读
    }
    let newPageinfo = {
      pagesize: 1,
      pageindex: 2,
      total: 20
    }
    return {
      pageinfo: newPageinfo,
      retcode: 0,
      retmsg: '成功',
      data: newSysDetail
    }
  }
  Mock.mock('/wxapi/Msg/NoticeDetail?id=1', 'get', sysDetailData);

// todo:首页-我的单据 ***********************************************************************************

  // 首页-我的单据-病历列表
  const billCaseListData = function() {
    let billCase = []
    for(let i=0; i<8; i++){
      let newBillCase = {
        id: 1,
        unread: Random.boolean(), //未读 ,
        rcdTime: Random.date(), // 日期 ,
        rcdResult: Random.ctitle(), // 诊断结果 ,
        hospitalName: Random.cname(), // 医院
        is_electron: Random.boolean() //是否电子处方
      }
      billCase.push(newBillCase)
    }
    return {
      pageinfo: {
        pagesize: 4,
        pageindex: 1,
        total: 10
      },
      recode: "0",
      retmsg: "success",
      data: billCase
    }
  }
  Mock.mock('/wxapi/Record/PatientMedicalRcdLst?pageindex=1&pagesize=13', 'get', billCaseListData);

  // 首页-我的单据-病历详情
  const billCaseDetailData = function() {
    let imgList = []
    let drugList = []
    for(let i=0; i<3; i++){
      imgList.push(Random.dataImage('400x800'))
    }
    for(let i=0; i<8; i++){
      let newDrug = {
        drug_name: Random.cname(), // 药品名 ,
        qty: Random.natural(0, 100), // 数量 ,
        dosage: Mock.mock('@pick(["每天3次，每次4颗", "每天2次，每次1颗", "每天3次，每次14颗"])'), // 用法用量
        remark: Random.cparagraph() // 备注
      }
      drugList.push(newDrug)
    }
    let newBillCase = {
      medical_id: 1, // 病历单id ,
      recipe_id: 1, // 处方单id ,
      hospital_name: Mock.mock('@pick(["广州男科医院", "广州妇科医院"])'), // 医院名称 ,
      docter_name: Random.cname(), //医生 ,
      title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), // 职称 ,
      rcd_time: Random.date(), // 诊断时间 ,
      rcd_result: Random.cparagraph(), // 诊疗记录 ,
      check_result: Mock.mock('@pick(["乙肝两对半", "丙肝一对一", "丁肝两对两"])'), // 诊疗结果 ,
      files: imgList, // 图片路径 ,
      drug_use: drugList, // 用药建议
      code:Random.natural(0, 100000000000000), // 编号 ,
      member_name: Random.cname(), // 姓名 ,
      gender: Mock.mock('@pick(["男", "女"])'), // 性别 ,
      age: Random.natural(0, 10), // 年龄 ,
      region: Random.city(), // 地区 ,
      money: Random.natural(0, 100), // 收费金额 ,
      check_drname: Random.cname(), // 审方药师 ,
      allocate_drname: Random.cname(), // 调配药师 ,
      medicine_drname: Random.cname(), // 核对/发药药师 ,
      is_electron: Random.boolean(), // 是否电子处方
      channel: Mock.mock('@pick([0, 1])') // 渠道 0 平台 1 七乐康
    }
    return {
      pageinfo: null,
      recode: "0",
      retmsg: "success",
      data: newBillCase
    }
  }
  Mock.mock('/wxapi/Record/medicalRcdDetail?id=1', 'get', billCaseDetailData);

  // 首页-我的单据-病历详情-按年列表
  const billCaseYearData = function() {
    let yearList = []
    let dayList = []
    for(let i=0; i<8; i++){
      let newListDate = {
        month_day: Random.date(), //月日 ,
        id: Random.natural(0, 10), // id ,
        unread: Random.boolean() // 未读标识
      }
      dayList.push(newListDate)
    }
    for(let i=0; i<8; i++){
      let newList = {
        year:  Random.date('yyyy'), // 年份 ,
        items: dayList // 对应年份的数据集
      }
      yearList.push(newList)
    }
    return {

      pageinfo: null,
      recode: "0",
      retmsg: "success",
      data: yearList
    }
  }
  Mock.mock('/wxapi/Record/medicalRcdYearLst', 'get', billCaseYearData);

  // 首页-我的单据-检查单列表
  const billCheckListData = function() {
    let billCheck = []
    for(let i=0; i<8; i++){
      let newBillCheck = {
        mid: 1, // 患者ID
        chk_id: 1, // 指标ID
        chk_type_id: 1, // 检查单ID
        name: Random.cname(), // 检查项目名称
        last_time: Random.date(), // 检查日期
        unread: Random.boolean(), // 红点
        chk_count: Random.natural(0.10),
        read_count: Random.natural(0.10)
      }
      billCheck.push(newBillCheck)
    }
    return {
      pageinfo: {
        pagesize: 4,
        pageindex: 1,
        total: 10
      },
      recode: "0",
      retmsg: "success",
      data: billCheck
    }
  }
  Mock.mock('/wxapi/Record/ChkTypeList?pageindex=1&pagesize=13', 'get', billCheckListData);

  // 首页-我的单据-检查单详情
  const billCheckData = function() {
    let objectList = []
    let imgList = []
    for(let i=0; i<5; i++){
      let newObject = {
        chk_demo_id: 1, //指标id ,
        chk_item: Random.ctitle(), //检查项目 ,
        chk_item_code: Random.name(), //项目代码 ,
        unti: 'U/L', //单位 ,
        chk_value: Random.natural(0, 1000) //检查结果
      }
      objectList.push(newObject)
    }
    for(let i=0; i<3; i++){
      imgList.push(Random.dataImage('300x300'))
    }
    let newBillCheck = {
      chk_id: 1, // 检查单id ,
      hospital_id: 1, // 检查医院id ,
      hospital_name: Random.ctitle(), // 检查医院名称 ,
      chk_remark: Random.cparagraph(), // 检查备注 ,
      chk_time: Random.date(), // 检查日期 ,
      items: objectList, // 检查项目集 ,
      files: imgList // 图片集
    }
    return {
      pageinfo: null,
      recode: "0",
      retmsg: "success",
      data: newBillCheck
    }
  }
  Mock.mock('/wxapi/Record/ChkDetail?chk_id=1', 'get', billCheckData);

  // 首页-我的单据-检查单详情-按年列表
  const billCheckYearData = function() {
    let yearList = []
    let dayList = []
    for(let i=0; i<10; i++){
      let newListDate = {
        month_day: Random.date('MM-dd'), //月日 ,
        chk_id: 1, // id ,
        unread: Random.boolean() // 未读标识
      }
      dayList.push(newListDate)
    }
    for(let i=0; i<4; i++){
      let newList = {
        year:  Random.date('yyyy'), // 年份 ,
        items: dayList // 对应年份的数据集
      }
      yearList.push(newList)
    }
    return {

      pageinfo: null,
      recode: "0",
      retmsg: "success",
      data: yearList
    }
  }
  Mock.mock('/wxapi/Record/ChkListByYear?type_id=1', 'get', billCheckYearData);

  // 首页-我的单据-转换中列表
  const billTurnListData = function() {
    let turnList = []
    for(let i=0; i<8; i++){
      let newList = {
        date: Random.date(), // 上传日期 ,
        unread: Random.boolean(), // 未阅 true ,
        processingQty: Random.natural(0,10) // 转换中的数量
      }
      turnList.push(newList)
    }
    return {
      pageinfo: {
        pagesize: 4,
        pageindex: 1,
        total: 10
      },
      recode: "0",
      retmsg: "success",
      data: turnList
    }
  }
  Mock.mock('/wxapi/Record/convertChkLst?pageindex=1&pagesize=13', 'get', billTurnListData);

  // 首页-我的单据-转换中详情列表
  const billTurnDetailData = function() {
    let listArr = []

    for(let i=0; i<8; i++){
      let newList = {
        id: Random.natural(0,10),
        url: Random.dataImage('300x300','转换图'), //图片地址 ,
        isFail: Random.boolean(), //是否转换失败
        remark: Random.cparagraph()// 审核备注
      }
      listArr.push(newList)
    }
    return {
      pageinfo: null,
      recode: "0",
      retmsg: "success",
      data: listArr
    }
  }
  Mock.mock('/wxapi/Record/convertChkDetail?date=2017-10-10', 'get', billTurnDetailData);

  // 首页-我的单据-转换中重新上传图片
  const billTurnUploadData = function() {
    return {
    pageinfo: null,
    recode: "0",
    retmsg: "删除成功",
    data: ''
  }
  }
  Mock.mock('/wxapi/Record/reupload/123/123', 'put', billTurnUploadData);

  // 首页-我的单据-转换中删除
  const billTurnDelData = function() {
    return {
      pageinfo: null,
      recode: "0",
      retmsg: "删除成功",
      data: ''
    }
  }
  Mock.mock('/wxapi/Record/delfilecheck', 'post', billTurnDelData);

  // 首页-我的单据-红点
  const homeUnreadData = function() {
    let newBillTab = {
      index_unread: Random.boolean(), // 首页底部导航未读标识 ,
      order_unread: Random.boolean(), // 我的单据入口未读标识
      is_sign: Random.boolean() // 当日是否签到
    }
    return {
      retcode: 0,
      retmsg: '成功',
      data: newBillTab
    }
  }
  Mock.mock('/wxapi/Record/unreadForIndex', 'get', homeUnreadData);

  // 首页-我的单据-TAB导航红点
  const billTabUnreadData = function() {
    let newBillTab = {
      medical_unread: Random.boolean(), // 病历tab未读标识 ,
      chk_unread: Random.boolean(), // 检查单tab未读标识 ,
      convert_unread: Random.boolean() // 转换中tab未读标识
    }
    return {
      retcode: 0,
      retmsg: '成功',
      data: newBillTab
    }
  }
  Mock.mock('/wxapi/Record/unreadForOrderTab', 'get', billTabUnreadData);

  // 首页-签到
  const signData = function () {
    return {
      retcode: 0,
      retmsg: '签到成功',
      data: ''
    }
  }
  Mock.mock('/wxapi/Patient/sign', 'post', signData);

  // 首页-签到明细
  const signDetailData = function () {
    let signList = []
    for(let i=0; i<7; i++){
      let newSign = {
        date: d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + Random.natural(0, 10), // 签到日期 格式:yyyy/MM/dd ,
        title: '' // title
      }
      signList.push(newSign)
    }
    let signItem = {
      sign_rules: Random.cparagraph(), // 签到规则 ,
      continuity_sign_days: Random.natural(0, 10), //已连续签到天数 ,
      remark: `再签${Random.natural(0,10)}天，可额外获得${Random.natural(0,100)}积分哦！`, // 备注 ,
      sign_his: signList // 当月签到历史
    }
    return {
      retcode: 0,
      retmsg: '签到成功',
      data: signItem
    }
  }
  Mock.mock('/wxapi/Patient/signDetail', 'get', signDetailData);

  
// todo:问医 ***********************************************************************************/

  // 问医列表
  const seekListData = function() {
    let seekList = []
    let visitsList = []
    for(let i=0; i<3; i++){
      let newVisitsList = {
        visit_id: 2, //Random.natural(0,10), // 咨询付费主键id ,
        visit_type: Mock.mock('@pick(["1", "2", "3"])'), // 咨询方式 1图文2电话3线下 ,
        visit_remark: Mock.mock('@pick(["图文", "电话", "线下"])'), // 咨询备注 ,
        pay_remark: Mock.mock('@pick(["50元/次", "20元/次", "100元/次"])') // 付费备注 ,
      }
      visitsList.push(newVisitsList)
    }
    for(let i=0; i<6; i++){
      let newSeekList = {
        drid: 1, // 医生id ,
        name: Random.cname(), // 医生名称 ,
        title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), // 职称 ,
        cust_name: Mock.mock('@pick(["乙肝专科", "丙肝医科", "丁肝神科"])'), // 科室 ,
        head: Random.dataImage('250x250'), // 头像 ,
        visits: visitsList, // 咨询集合
        unread: Random.boolean() // 门诊信息入口未读标识
      }
      seekList.push(newSeekList)
    }
    let newPageinfo = {
      pagesize: 1,
      pageindex: 6,
      total: 7
    }
    return {
      pageinfo: newPageinfo,
      retcode: 0,
      retmsg: '成功',
      data: seekList
    }
  }
  Mock.mock('/wxapi/Doctor/drList?pageindex=1&pagesize=6', 'get', seekListData);

  // 问医底部导航红点
  const seekBarUnreadData = function() {
    return {
      retcode: 0,
      retmsg: '成功',
      data: Random.boolean()
    }
  }
  Mock.mock('/wxapi/Doctor/unreadForNav', 'get', seekBarUnreadData);

  // 问医详情
  const seekDetailData = function() {
    let visitsItem = []
    for(let i=0; i<3; i++){
      let newVisits = {
        visit_id: 2, //Random.natural(0,10), // 咨询付费主键id ,
        visit_type: Mock.mock('@pick(["1", "2", "3"])'), // 咨询方式 1图文2电话3线下 ,
        visit_remark: Mock.mock('@pick(["图文", "电话", "线下"])'), // 咨询备注 ,
        pay_remark: Mock.mock('@pick(["免费", "2元/次", "未开通"])') // 付费备注 ,
      }
      visitsItem.push(newVisits)
    }
    let newSeekDetail = {
      drid: 1, // 医生id ,
      name: Random.cname(), //医生名称 ,
      title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), //职称 ,
      cust_name: Mock.mock('@pick(["乙肝专科", "丙肝医科", "丁肝神科"])'), //科室 ,
      head: Random.dataImage('250x250'), //头像 ,
      visits: visitsItem, //咨询集合 ,
      hospital_name: Random.cname(), //所属医院 ,
      remark: Random.cparagraph(), //擅长 ,
      introduction: Random.cparagraph(), //简介
      unread: Random.boolean() // 门诊信息入口未读标识
    }
    return {
      data: newSeekDetail
    }
  }
  Mock.mock('/wxapi/Doctor/drDetail?id=1', 'get', seekDetailData);

  // 门诊信息
  const seekInfoData = function() {
    let seekInfo = []
    let seekData = []
    for(let i=0; i<3; i++){
      let newSeekData = {
        week: Mock.mock('@pick(["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"])'), // 星期 ,
        visit_time: Mock.mock('@pick(["上午", "下午", "晚上"])'), // 时间段 ,
        clinic_type: Mock.mock('@pick(["专科", "普通门诊"])') // 门诊类型
      }
      seekData.push(newSeekData)
    }
    for(let i=0; i<6; i++){
      let newSeekList = {
        location: Mock.mock('@pick(["本院区", "其他院区"])'), // 院区 ,
        schdules: seekData // 出诊列表
      }
      seekInfo.push(newSeekList)
    }
    return {
      data: seekInfo
    }
  }
  Mock.mock('/wxapi/Doctor/schedule?drid=1', 'get', seekInfoData);

  // 电话/线下预约申请
  const seekApplyInfoData = function() {
    let newApplyInfo = {
      drid: 1, // 医生id ,
      doctor_name: Random.cname(), // 医生姓名 ,
      title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), //职称 ,
      cust_name: Mock.mock('@pick(["乙肝专科", "丙肝医科", "丁肝神科"])'), //科室 ,
      head: Random.dataImage('300x300'), // 头像 ,
      pay_money: Random.natural(0,100), // 费用 ,
      answer_tel: '13800138999', // 接听电话 ,
      discount_money: Random.natural(0,10), // 折扣费用 ,
      remark: Mock.mock('@pick([" ", "该医生已设置限时优惠价格，优惠过后将恢复原价"])'), // 备注信息 ,
      visit_id: Random.id()
    }
    return {
      data: newApplyInfo
    }
  }
  Mock.mock('/wxapi/PatientOrder/orderAppInitil?visit_id=2', 'get', seekApplyInfoData)

  // 电话/线下预约申请-提交申请
  const seekApplySubmitData = function() {

    return {
      data: ''
    }
  }
  Mock.mock('/wxapi/PatientOrder/telVisitApply', 'post', seekApplySubmitData)

// todo:我（个人中心） ***********************************************************************************/

  // 个人信息
  const meInfoData = function() {
    let newMeInfo = {
      mid: Random.id(), // 会员id ,
      name: Random.cname(), // 名称 ,
      gender: Mock.mock('@pick(["男", "女"])'), // 性别 ,
      age: Random.date(), //年龄 ,
      disease_des: '肝病', // 疾病 ,
      addr: Random.province() + ' ' + Random.city(), // 地址 ,
      head: Random.dataImage('300x300'), // 头像
      province_id: 1, // 身份id ,
      city_id: 1, // 城市id ,
      disease_id: 1, // 病种id
      province: Random.province(), // 省份 ,
      city: Random.city() // 城市
    }
    return {
      data: newMeInfo
    }
  }
  Mock.mock('/wxapi/Patient/myInfo', 'get', meInfoData);

  // 个人中心底部导航红点
  const meBarUnreadData = function() {
    let meUnread = {
      my_visit_unread: Random.boolean(), // 我的预约入口红点 ,
      my_center_unread: Random.boolean() // 个人中心底部导航红点
    }
    return {
      retcode: 0,
      retmsg: '成功',
      data: meUnread
    }
  }
  Mock.mock('/wxapi/PatientOrder/unreadForMyCenter', 'get', meBarUnreadData);

  // 个人信息--保存
  const meInfoSaveData = function() {
    return {
      data: ''
    }
  }
  Mock.mock('/wxapi/Patient/saveInfo', 'post', meInfoSaveData);

  // 我的账单-图文列表
  const accountTxtData = function() {
    let txtList = []
    for(let i=0; i<8; i++) {
      let newAccountTxt = {
        id: 1, // 记录id ,
        doctor_name: Random.cname(), // 医生姓名 ,
        cust_name: Mock.mock('@pick(["乙肝专科", "丙肝医科", "丁肝神科"])'), // 科室 ,
        title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), // 职称 ,
        head: Random.dataImage('300x300'), // 头像 ,
        pay_time: Random.date(), // 付款时间 ,
        visit_time: Random.date(), // 咨询时间 ,
        visit_type: Mock.mock('@pick(["1", "2", "3"])'), // 订单类型 1 图文 2 电话 3 线下 ,
        pay_money: Random.natural(0, 100), // 付款金额 ,
        location: Random.region(), // 线下问诊地址 ,
        refund_id: 1, // 退款记录id ,无退款记录则为0 ,
        refund_status: Mock.mock('@pick(["-1", "0", "1", "2", "3"])'), // 退款状态 -1 退款 0 退款审核中 1 退款成功 2 退款关闭 3 退款待修改 ,
        is_refund: Random.boolean(), // 是否可退 ,
        refund_remark: '超过7天申请退款期间' // 退款说明
      }
      txtList.push(newAccountTxt)
    }
    return {
      pageinfo: {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: txtList
    }
  }
  Mock.mock('/wxapi/PatientOrder/txtVisitBills?pageindex=1&pagesize=4', 'get', accountTxtData);

  // 我的账单-电话列表
  const accountTelData = function() {
    let telList = []
    for(let i=0; i<8; i++) {
      let newAccountTel = {
        id: 1, // 记录id ,
        doctor_name: Random.cname(), // 医生姓名 ,
        cust_name: Mock.mock('@pick(["乙肝专科", "丙肝医科", "丁肝神科"])'), // 科室 ,
        title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), // 职称 ,
        head: Random.dataImage('300x300'), // 头像 ,
        pay_time: Random.date(), // 付款时间 ,
        visit_time: Random.date(), // 咨询时间 ,
        visit_type: 1, // 订单类型 1 图文 2 电话 3 线下 ,
        pay_money: Random.natural(0, 100), // 付款金额 ,
        location: Random.region(), // 线下问诊地址 ,
        refund_id: 1, // 退款记录id ,无退款记录则为0 ,
        refund_status: Mock.mock('@pick(["-1", "0", "1", "2", "3"])'), // 退款状态 -1 退款 0 退款审核中 1 退款成功 2 退款关闭 3 退款待修改 ,
        is_refund: Random.boolean(), // 是否可退 ,
        refund_remark: '超过7天申请退款期间' // 退款说明
      }
      telList.push(newAccountTel)
    }
    return {
      pageinfo: {
        pageindex: 1,
        pagesize: 4,
        total: 18
      },
      recode: "0",
      retmsg: "success",
      data: telList
    }
  }
  Mock.mock('/wxapi/PatientOrder/telVisitBills?pageindex=1&pagesize=4', 'get', accountTelData);

  // 我的账单-线下列表
  const accountLineData = function() {
    let lineList = []
    for(let i=0; i<8; i++) {
      let newAccountLine = {
        id: 1, // 记录id ,
        doctor_name: Random.cname(), // 医生姓名 ,
        cust_name: Mock.mock('@pick(["乙肝专科", "丙肝医科", "丁肝神科"])'), // 科室 ,
        title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), // 职称 ,
        head: Random.dataImage('300x300'), // 头像 ,
        pay_time: Random.date(), // 付款时间 ,
        visit_time: Random.date(), // 咨询时间 ,
        visit_type: Mock.mock('@pick(["1", "2", "3"])'), // 订单类型 1 图文 2 电话 3 线下 ,
        pay_money: Random.natural(0, 100), // 付款金额 ,
        location: Random.region(), // 线下问诊地址 ,
        refund_id: 1, // 退款记录id ,无退款记录则为0 ,
        refund_status: Mock.mock('@pick(["-1", "0", "1", "2", "3"])'), // 退款状态 -1 退款 0 退款审核中 1 退款成功 2 退款关闭 3 退款待修改 ,
        is_refund: Random.boolean(), // 是否可退 ,
        refund_remark: '超过7天申请退款期间' // 退款说明
      }
      lineList.push(newAccountLine)
    }
    return {
      pageinfo:  {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: lineList
    }
  }
  Mock.mock('/wxapi/PatientOrder/lineVisitBills?pageindex=1&pagesize=4', 'get', accountLineData);

  // 我的账单-申请退款
  const accountApplyData = function() {
    let newApplyDetail = {
      refund_id: Mock.mock('@pick(["0", "1", "2", "3", "4"])'), // 退款记录id ,
      refund_reason: '久债久还', // 退款原因 ,
      refund_money: Random.natural(0, 100), // 退款金额 ,
      refund_remark: Random.csentence(), // 退款备注 ,
      op_status: Mock.mock('@pick(["0", "1", "2", "3", "4"])'), //处理状态 0 退款审核中 1 审核通过 2 审核不通过 3 已退款 ,
      op_remark: '当前交易经核实不在退款范围内', // 处理备注 ,
      card_id: Random.id(), // 退款账号id ,
      card_no: '8899' // 退款账号
    }
    return {
      pageinfo:  {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: newApplyDetail
    }
  }
  Mock.mock('/wxapi/PatientRefund/refundDetail?refund_id=1', 'get', accountApplyData);

  // 我的账单-申请退款-提交申请
  const accountApplySubmitData = function() {
    return {
      pageinfo:  {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: true
    }
  }
  Mock.mock('/wxapi/PatientRefund/apply', 'post', accountApplySubmitData);

  // 我的账单-申请退款-保存账号
  const accountBankSaveData = function() {
    return {
      pageinfo:  {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: {
        id: Random.id(), // 患者账号表主键id ,
        card_no: '7788' // 卡号 卡号尾数+卡号后4位
      }
    }
  }
  Mock.mock('/wxapi/PatientRefund/saveRefundAccount', 'post', accountBankSaveData);

  // 我的预约-电话
  const subscribeTelData = function() {
  let telList = []
  for(let i=0; i<8; i++){
    let newTelData = {
      id: 1, // 预约id ,
      pre_type: Mock.mock('@pick(["1", "2", "3"])'), //预约类型（1图文2电话3线下） ,
      doctor_name: Random.cname(), //医生姓名 ,
      cust_name: Mock.mock('@pick(["乙肝专科", "丙肝医科", "丁肝神科"])'), // 科室 ,
      title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), // 职称 ,
      head: Random.dataImage('300x300','头像'), //头像 ,
      pre_date: Random.date(), // 预约时间 ,
      status: Mock.mock('@pick(["0", "1", "2", "3", "4", "5"])'), //预约状态 待审核=0,待付款=1,待咨询=2,已关闭=3,已结束=4,已评价=5 ,
      unread: Random.boolean() // 未读标识 待付款、已关闭（即预约失败）、待评价的预约需显示红点，其他状态不需（即默认false）
    }
    telList.push(newTelData)
  }
  return {
    pageinfo: {
      pageindex: 1,
      pagesize: 4,
      total: 8
    },
    recode: "0",
    retmsg: "success",
    data: telList
  }
  }
  Mock.mock('/wxapi/PatientOrder/telVisit?pageindex=1&pagesize=7', 'get', subscribeTelData);

  // 我的预约-线下
  const subscribeLineData = function() {
    let lineList = []
    for(let i=0; i<8; i++){
      let newOffData = {
        id: 1, // 预约id ,
        pre_type: Mock.mock('@pick(["1", "2", "3"])'), //预约类型（1图文2电话3线下） ,
        doctor_name: Random.cname(), //医生姓名 ,
        cust_name: Mock.mock('@pick(["乙肝专科", "丙肝医科", "丁肝神科"])'), // 科室 ,
        title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), // 职称 ,
        head: Random.dataImage('300x300','头像'), //头像 ,
        pre_date: Random.date(), // 预约时间 ,
        location: Random.ctitle(), // 面诊地址
        status: Mock.mock('@pick(["0", "1", "2", "3", "4", "5"])'), //预约状态 待审核=0,待付款=1,待咨询=2,已关闭=3,已结束=4,已评价=5 ,
        unread: Random.boolean() // 未读标识 待付款、已关闭（即预约失败）、待评价的预约需显示红点，其他状态不需（即默认false）
      }
      lineList.push(newOffData)
    }

    return {
      pageinfo: {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: lineList
    }
  }
  Mock.mock('/wxapi/PatientOrder/lineVisit?pageindex=1&pagesize=7', 'get', subscribeLineData);

  // 我的预约-预约详情
  const subscribeDetailData = function() {
    let imgList = []
    for(let i=0; i<3; i++){
      imgList.push(Random.dataImage('200x200'))
    }
    let newSubscribe = {
      id: 1, // 预约记录id ,
      drid: 1, // 医生id ,
      doctor_name: Random.cname(), // 医生姓名 ,
      cust_name: Mock.mock('@pick(["乙肝专科", "丙肝医科", "丁肝神科"])'), // 科室 ,
      title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), // 职称 ,
      pay_remark: '133元/次', // 付费备注 ,
      head: Random.dataImage('300x300'), // 头像 ,
      createtime: Random.date(), // 申请时间 ,
      pre_time: Random.date(), // 期望预约时间/咨询时间 ,
      visit_type: Mock.mock('@pick(["2", "3"])'), // 咨询类型 2 电话 3 线下 ,
      contact_tel: Random.natural(0,100000000000), // 联系电话 ,
      disease_des: Random.cparagraph(), // 病情描述 ,
      status: Mock.mock('@pick(["0", "1", "2", "3", "4", "5"])'), // 状态 待审核=0,待付款=1, 待咨询=2,已关闭=3,已结束（即待评价）=4,已评价=5 ,
      files: imgList, // 图片集 ,
      medical_id: Random.natural(0,10), // 诊疗记录id ,
      location: Random.cparagraph(), // 面诊地点 ,
      pay_money: Random.natural(0,100), // 付费金额
      close_time: Random.date(), // 结束时间
      mid: 234
    }

    return {
      pageinfo: {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: newSubscribe
    }
  }
  Mock.mock('/wxapi/PatientOrder/orderDetail?id=1', 'get', subscribeDetailData);

  // 我的预约-TAB红点
  const subscribeUnreadData = function() {
    let newSubscribeUnread = {
      tel_unread: Random.boolean(), // 电话TAB导航未读标识 ,
      line_unread: Random.boolean() // 线下TAB导航未读标识
    }
    return {
      retcode: 0,
      retmsg: '成功',
      data: newSubscribeUnread
    }
  }
  Mock.mock('/wxapi/PatientOrder/unreadForVisitTab', 'get', subscribeUnreadData);

  // 评价
  const evalBaseData = function() {
    let newEval = {
      drid: 1, // 医生id ,
      head: Random.dataImage('300x300'), // 头像 ,
      doctor_name: Random.cname(), // 医生姓名 ,
      cust_name: Mock.mock('@pick(["乙肝专科", "丙肝医科", "丁肝神科"])'), // 科室 ,
      title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), // 职称 ,
      score: Mock.mock('@pick(["0", "1", "2", "3", "4", "5"])'), //星级0-5 ,
      remark:  Random.cparagraph(), // 内容 ,
      record_id: 1, // 留言进入评价，则为留言主表id，预约详情进入则为预约主表id ,
      record_type: Mock.mock('@pick(["1", "2"])') // 评价类型 1 留言 2 预约
    }
    return {
      data: newEval
    }
  }
  Mock.mock('/wxapi/Patient/evaluateDetail?drid=1&record_type=2&record_id=1', 'get', evalBaseData);

  // 提交评价
  const evalSaveData = function() {
    return {
      data: ''
    }
  }
  Mock.mock('/wxapi/PatientOrder/evaluate', 'post', evalSaveData);

  // 点赞详情
  const admirationData = function() {
    let list = []
    for(let i=0; i<3; i++){
      let newList = {
        pic_path: Random.dataImage('300x300'), //图片地址 ,
        price: Random.natural(0, 10), //价格 ,
        remark: Random.cparagraph(), // 描述 ,
        type: i, // 方式: 0 送心意 1 送花 2 送锦旗 ,
        zs_id: Random.natural(0, 10) // 赞赏id
      }
      list.push(newList)
    }
    let newAdmiration = {
      drid: 1, // 医生id ,
      dr_name: Random.cname(), // 医生姓名 ,
      head: Random.dataImage('300x300'), // 医生头像 ,
      items: list, // 赞赏方式集合 ,
      points: Random.natural(0, 1000) // 总积分
    }
    return {
      data: newAdmiration
    }
  }
  Mock.mock('/wxapi/Patient/admirationInfo?drid=1', 'get', admirationData);

  // 建立点赞
  const admirationBuild = function() {
    let newBuild = {
      order_id: Random.natural(0, 10), 赞赏订单id ,
      total_fee: Mock.mock('@pick(["6.6", "16.6", "26.6"])'), //费用 ,
      mid: Random.natural(0, 10), // 患者id ,
      drid: Random.natural(0, 10) //医生id
    }
    return {
      data: newBuild
    }
  }
  Mock.mock('/wxapi/Patient/buildAdmira', 'post', admirationBuild);

  // 我的积分
  const pointsData = function() {
    let pointsItem = []
    let pointsYearItem =[]
    for(let i=0; i<2; i++){
      let newPointsYear = {
          integralDate: Random.date('yyyy-MM'), // 获取积分日期 ,
          integralNumber: Random.natural(0, 1000), // 积分收入(支出) ,
          detailDescription: Mock.mock('@pick(["签到", "购药", "兑换"])') // 详细说明
      }
      pointsYearItem.push(newPointsYear)
    }
    for(let i=0; i<3; i++){
      let newPointsItem = {
        year_month: Random.date('yyyy-MM'), // 年月 ,
        items: pointsYearItem // 积分明细
      }
      pointsItem.push(newPointsItem)
    }
    let newPoints = {
      integralBalance: Random.natural(0, 1000), // 积分余额 ,
      integralRule: Random.cparagraph(), // 积分规则 ,
      year_items: pointsItem // 积分明细（按年月）
    }
    return {
      pageinfo: {
        pageindex: 1,
        pagesize: 10,
        total: 10
      },
      data: newPoints
    }
  }
  Mock.mock('/wxapi/Patient/integration?pageindex=1&pagesize=10', 'get', pointsData);

  // 联系客服-历史记录
  const contactData = function() {
    let contactList = []
    for(let i=0; i<1; i++) {
      let newContactItems = {
        content: Random.cparagraph(), // 内容,
        head: Random.dataImage('300x300'), // 头像
        time: Random.date() // 时间
      }
      contactList.push(newContactItems)
    }

    let newContact = {
      date: Random.date(), // 时间 精确到分 ,
      items: contactList // 数据集合
    }
    return {
      data: newContact
    }
  }
  Mock.mock('/wxapi/Patient/contackHis?date=2017-11-01', 'get', contactData);

  // 联系客服-最新的一条历史记录
  const contactLastData = function() {
    let contactList = []
    for(let i=0; i<10; i++) {
      let newContactItems = {
        content: Random.ctitle(), // 内容,
        head: Random.dataImage('300x300'), // 头像
        time: Random.date() // 时间
      }
      contactList.push(newContactItems)
    }

    let newContact = {
      date: Random.date(), // 时间 精确到分 ,
      items: contactList // 数据集合
    }
    return {
      data: newContact
    }
  }
  Mock.mock('/wxapi/Patient/currentKfMsg', 'get', contactLastData);

  // 联系客服-提交问题
  const contactSubmitData = function() {
    return {
      data: ''
    }
  }
  Mock.mock('/wxapi/Patient/contactKf', 'post', contactSubmitData);

  // 设置-服务协议
  const prototcolData = function() {
    return {
      data: { content: Random.cparagraph()}
    }
  }
  Mock.mock('/wxapi/set/prototcol', 'get', prototcolData);

  // 设置-关于我们
  const aboutData = function() {
    let newAbout = {
      src: Random.dataImage('300x300'),
      ver: '1.0',
      content: Random.cparagraph()
    }
    return {
      data: newAbout
    }
  }
  Mock.mock('/wxapi/set/profile', 'get', aboutData);

// todo:基础数据接口 ***********************************************************************************/

  // 银行列表
  const baseBankListData = function() {
    let bankList = []
    for(let i=0; i<4; i++){
      let newBankList = {
        Selected: Random.boolean(),
        Text: Random.cname(),
        Value: Random.cname()
      }
      bankList.push(newBankList)
    }

    return {
      data: bankList
    }
  }
  Mock.mock('/wxapi/MasterData/bankList', 'get', baseBankListData);

  // 关于六医卫
  const baseProfileData = function() {
    let baseProfile = {
      version: 'v 0.1Beta', // 版本号 ,
      logo: Random.dataImage('300x300'), // app logo ,
      desc: Random.cparagraph() // 说明
    }
    return {
      pageinfo:  {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: baseProfile
    }
  }
  Mock.mock('/wxapi/MasterData/about', 'get', baseProfileData);

  // 服务协议
  const basePrototcolData = function() {
    let basePrototcol = Random.csentence()
    return {
      pageinfo:  {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: basePrototcol
    }
  }
  Mock.mock('/wxapi/MasterData/serviceAgreement', 'get', basePrototcolData);

  // 退款原因列表
  const baseRefundReasonData = function() {
    let applyReason = []
    for(let i=0; i<6; i++){
      let newApplyReason = {
        Selected: Random.boolean(),
        Text: Random.cname(),
        Value: Random.cname()
      }
      applyReason.push(newApplyReason)
    }
    return {
      pageinfo:  {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: applyReason
    }
  }
  Mock.mock('/wxapi/PatientRefund/refundReason?visit_type=2', 'get', baseRefundReasonData);

  // 退款需知
  const baseRefundNoticeData = function() {
    let baseNotice = Random.csentence()
    return {
      pageinfo:  {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: baseNotice
    }
  }
  Mock.mock('/wxapi/MasterData/refundDesc', 'get', baseRefundNoticeData);

  // todo:医生端分享数据接口 ***********************************************************************************/
  const scanData = function() {
    let scanData = {
      drid: 1, //
      name: Random.cname(),
      title: Mock.mock('@pick(["实习医生", "专科医生", "教授专家"])'), // 职称 ,
      head: Random.dataImage('300x300'), // 头像
      hospital_name: Random.ctitle(), // 医院名称 ,
      qr_code: Random.dataImage('300x300') // 二维码
    }
    return {
      pageinfo:  {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: scanData
    }
  }
  Mock.mock('/wxapi/MasterData/drShareInfo?drid=1', 'get', scanData);

  const scanValidCodeData = function() {
    let validCodeData = {
      is_register: Random.boolean(), // 是否已注册 ,
      code: Random.natural(0, 1000000) // 验证码
    }
    return {
      pageinfo:  {
        pageindex: 1,
        pagesize: 4,
        total: 8
      },
      recode: "0",
      retmsg: "success",
      data: validCodeData
    }
  }
  Mock.mock('/wxapi/MasterData/ValidCode?mobileno=13800138000', 'get', scanValidCodeData);

  const scanProtocolData = function() {
    return {
      data: '医生端服务协议'
    }
  }
  Mock.mock('/wxapi/MasterData/protocol', 'get', scanProtocolData);

  const scanRegData = function() {
    return {
      recode: "0",
      retmsg: "success",
      data: ''
    }
  }
  Mock.mock('/wxapi/MasterData/drRegister', 'post', scanRegData);
